package com.telaxo.shooter2012.projectiles {
	import com.telaxo.shooter2012.gfx.Ship;
	import com.telaxo.shooter2012.explosions.MiniExplosion;
	import com.telaxo.shooter2012.gfx.Ship;
	import com.telaxo.shooter2012.interfaces.Projectile;

	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.events.Event;


	/** 
	 * @author Benjamin 
	 */
	public class BalleEnnemi extends MovieClip implements Projectile {
		// Récupération de l'image du vaisseau
		[Embed(source="../gfx/swf/StingerBullet.swf")]
		private var Ressource : Class;
		private var stageRef : Stage;
		private var target : Ship;
		private var vx : Number;
		private var degats : Number;

		public function BalleEnnemi(s : Stage, t : Ship, x : Number, y : Number, v : Number) {
			stageRef = s;
			target = t;
			vx = v;

			this.x = x;
			this.y = y;

			degats = 1;
			// Ajout de l'image de la balle
			var image : MovieClip = new Ressource();
			addChild(image);
			// Evénement de la balle
			addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
		}

		// Boucle de la balle ennemi
		private function loop(pEvt : Event) : void {
			x += vx;

			// Si la balle sort de l'écran, la supprimer
			if (x > stageRef.stageWidth || x < 0) supprimerProjectile();

			// Si la balle touche le joueur
			if (hitTestObject(target.hit)) {
				stageRef.addChild(new MiniExplosion(stageRef, x, y));
				supprimerProjectile();
			}
		}

		public function supprimerProjectile() : void {
			removeEventListener(Event.ENTER_FRAME, loop);
			if (stageRef.contains(this)) stageRef.removeChild(this);
		}
	}
}  
